Как раз на работе соседняя команда разрабатывает библиотечку для кастомных очередей с замороченной логикой. Там используется AtomicBoolean переменная как флажок останова всего механизма очереди. Там как раз применяется связка методов .setRelease(true), .getAcquire(). До этого доклада лазил по SO тредам и каким-то старым статьям по Java Memory Model - нифига не понял, только мозг опух. Здесь в этом докладе хотя бы что-то более менее встало на свои места, реально крутой бодрый докладик. Спикеру, оргам спасибо, респект.
@@nikitanovosad9937 с метриками связано(+ лютый дроч на производительность кода), что конкретно в проекте это решает я не знаю, я слабоват для понимания что там и зачем, опытные коллеги делали. Просто видел что используется
Напишу, что крутой доклад, пусть остальные думают, что я все понял и умнее их 😂 Upd. А если серьёзно, то видимо мало кто понял, так как комментариев меньше 0.5 процента от просмотров
кто захотел тот понял ;) единственное, что автор мог доразжевать, что тк в примере с пандой и котом только одна переменная в каждом потоке, то фактическое поведение равноценно даже opaque семантике (на мой взгляд). В общем opaque не дает ничего, acq-rel упорядоченность записи внутри одного потока, volatile упорядоченность записи на уровне всех потоков
HB определяется через synchronized-with, которое, в свою очередь, определяется через synchronization order (consensus). Так что по спецификации языка HB определяется через консенсус.
Смотрите следующую часть доклада Александра - ruclips.net/video/092UL69hQd0/видео.html
Замечательный доклад! Все очень кратко и понятно соблюдая строгие гарантии подачи и восприятия данного материала.
Отличный доклад, Саша) Приятно видеть тебя спикером)
Мегакрутой чувак!!! Хочу ещё 20 его двухчасовых лекций. Очень просто и доступно, учись, Шипилёв, как надо!
Отличный доклад, можно даже начинающим показывать. Редко такое на конфах увидишь
Очень доступное изложение, без нюансов конечно, но стоит посмотреть
Очень круто, и по содержанию, и по презентации. Все четко, без воды и с примерами. Жги еще.
Превосходный доклад!
крутой доклад. Вспоминаем времена Шипилёва
Спасибо! Интересный доклад и хорошая подача.
да последний пример про панду и котика просто шедеврально
нехрен с релятивистскими скоростями бегать :)))
Шикарный доклад!
Доклад огонь!
Шикарный доклад. Особенно после того как до этого читал много литературы по многопоточности, но часть не понял.
Крутой доклад, спасибо!
Cool presentation, thank you for that anr shared benchmark
есть тут те, кто использует эти семантики в продакшн коде?)
Нет, но теперь на собесах будут новые дебильные вопросы
Как раз на работе соседняя команда разрабатывает библиотечку для кастомных очередей с замороченной логикой. Там используется AtomicBoolean переменная как флажок останова всего механизма очереди. Там как раз применяется связка методов .setRelease(true), .getAcquire(). До этого доклада лазил по SO тредам и каким-то старым статьям по Java Memory Model - нифига не понял, только мозг опух. Здесь в этом докладе хотя бы что-то более менее встало на свои места, реально крутой бодрый докладик. Спикеру, оргам спасибо, респект.
Да, есть вархендлы на проде
@@JavaAverageBadCoder расскажите, что это за сервис, в котором была нужда использовать вархендлы?
@@nikitanovosad9937 с метриками связано(+ лютый дроч на производительность кода), что конкретно в проекте это решает я не знаю, я слабоват для понимания что там и зачем, опытные коллеги делали. Просто видел что используется
Напишу, что крутой доклад, пусть остальные думают, что я все понял и умнее их 😂
Upd. А если серьёзно, то видимо мало кто понял, так как комментариев меньше 0.5 процента от просмотров
кто захотел тот понял ;) единственное, что автор мог доразжевать, что тк в примере с пандой и котом только одна переменная в каждом потоке, то фактическое поведение равноценно даже opaque семантике (на мой взгляд). В общем opaque не дает ничего, acq-rel упорядоченность записи внутри одного потока, volatile упорядоченность записи на уровне всех потоков
Причинность это и есть HB...
HB определяется через synchronized-with, которое, в свою очередь, определяется через synchronization order (consensus). Так что по спецификации языка HB определяется через консенсус.